# alpine 是docker官方推荐的linux发行版，文件体积小, 但是APK源太少, 这里不使用;
# buster 是debian10代号, 这里指定buster, 方便使用自定义源
FROM docker.m.daocloud.io/library/php:8.0.30-fpm-buster

ENV TZ=Asia/Shanghai

# 使用国内源文件
COPY sources.list /etc/apt/sources.list

# 使用 docker-php-ext-install 安装php扩展, 支持安装的扩展可以进入容器, 输入`docker-php-ext-install`查看

RUN echo "====> 同步时间" && \
    ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone && \
    \
    echo "====> 根据 laravel 9 要求, 安装对应扩展" && \
    apt-get update && \
    apt-get install -y --no-install-recommends \
        libmcrypt-dev \
        libbz2-dev \
        libfreetype6-dev \
        libjpeg62-turbo-dev \
        libpng-dev \
        libgmp-dev \
        libzip-dev \
        libcurl4-openssl-dev \
        libssl-dev \
        iputils-ping && \
    docker-php-source extract && \
    docker-php-ext-configure gd --with-jpeg=/usr/include --with-freetype=/usr/include/ && \
    docker-php-ext-install -j$(nproc) gd && \
    docker-php-ext-install mysqli pdo_mysql opcache pcntl bcmath sockets gmp zip && \
    \
    echo "====> 安装 Redis 扩展, laravel 使用 predis 可不装" && \
    echo "====> 安装 Mongodb 扩展" && \
    pecl install -o -f redis && \
    pecl install -o -f mongodb && \
    docker-php-ext-enable redis mongodb && \

    echo "====> 安装常用软件" && \
    apt-get install -y --no-install-recommends \
        libmcrypt-dev \
        vim \
        wget \
        curl \
        htop \
        file \
        iputils-ping \
        procps \
        telnet \
        --reinstall ca-certificates && \
        update-ca-certificates -f && \
        pecl install mcrypt && \
    \
    echo "====> 安装 xdebug 扩展, 默认不开启" && \
    pecl install xdebug && \
    # docker-php-ext-enable xdebug && \
    \
    # echo "====> 安装 Memcached 扩展" && \
    # apt-get install -y libmemcached-dev zlib1g-dev && \
    # pecl install memcached && \
    # docker-php-ext-enable memcached && \
    \
    echo "====> 设置权限" && \
    usermod -u 1000 www-data && \
    \
    echo "====> Clear Up" && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

# 工作目录
WORKDIR /data/wwwroot/app
